home *** CD-ROM | disk | FTP | other *** search
/ .net 2002 March / DotNetMagazine-Issue107-Coverdisc-NET107-02-03-PCMac.bin / pc / PC Software / free_browsing / DavesQckSearchDbar3-14 / dqsd.exe / clock.js < prev    next >
Text File  |  2002-07-23  |  3KB  |  159 lines

  1. // clock code
  2.  
  3. var clocktimer = null;
  4. var clockrunning = false;
  5. var clockformat = clocklongform;
  6.  
  7. // Date formatting code adapted from
  8. // http://www.mattkruse.com/javascript/date/source.html
  9.  
  10.  
  11. function formatdate(date,format)
  12. {
  13.   format = format+"";
  14.   var result = "";
  15.   var i_format = 0;
  16.   var c = "";
  17.   var token = "";
  18.   var y = date.getYear()+"";
  19.   var M = date.getMonth()+1;
  20.   var d = date.getDate();
  21.   var H = date.getHours();
  22.   var m = date.getMinutes();
  23.   var s = date.getSeconds();
  24.   var E = date.getDay() + 1;
  25.   var yyyy,yy,MMMM,MMM,MM,dd,hh,h,mm,ss,ampm,AMPM,HH,H,EEE,EEEE,E;
  26.  
  27.   // Convert real date parts into formatted versions
  28.  
  29.   // Year
  30.   if (y.length < 4)
  31.     y = y-0+1900;
  32.   y = ""+y;
  33.   yyyy = y;
  34.   yy = y.substring(2,4);
  35.  
  36.   // Month
  37.   MM = ((M < 10) ? "0" + M : M);
  38.   MMMM = getMonthName(M);
  39.   MMM = getMonthName(M+12);
  40.  
  41.   // Day of month
  42.   dd = ((d < 10) ? "0" + d : d);
  43.  
  44.   // Day of week
  45.   EEEE = getDayName(E);
  46.   EEE = getDayName(E+7);
  47.  
  48.   // Hour
  49.   h = ((H > 12) ? H - 12 : H);
  50.   if (h == 0) h = 12;
  51.   hh = ((h < 10) ? "0"+h : h);
  52.   HH = ((H < 10) ? "0"+H : H);
  53.  
  54.   // AM/PM
  55.   AMPM = ((H >= 12) ? "PM" : "AM");
  56.   ampm = ((H >= 12) ? "pm" : "am");
  57.  
  58.   // Minute
  59.   mm = ((m < 10) ? "0" + m : m);
  60.  
  61.   // Second
  62.   if (s < 10) { ss = "0"+s; }
  63.     else { ss = s; }
  64.  
  65.   // Now put them all into an object!
  66.   var value = new Object();
  67.   value["yyyy"] = yyyy;
  68.   value["yy"] = yy;
  69.   value["y"] = y;
  70.   value["MMMM"] = MMMM;
  71.   value["MMM"] = MMM;
  72.   value["MM"] = MM;
  73.   value["M"] = M;
  74.   value["dd"] = dd;
  75.   value["d"] = d;
  76.   value["hh"] = hh;
  77.   value["h"] = h;
  78.   value["HH"] = HH;
  79.   value["H"] = H;
  80.   value["mm"] = mm;
  81.   value["m"] = m;
  82.   value["ss"] = ss;
  83.   value["s"] = s;
  84.   value["a"] = ampm;
  85.   value["A"] = AMPM;
  86.   value["E"] = E;
  87.   value["EEE"] = EEE;
  88.   value["EEEE"] = EEEE;
  89.   while (i_format < format.length)
  90.   {
  91.     // Get next token from format string
  92.     c = format.charAt(i_format);
  93.     token = "";
  94.  
  95.     // Basic character escaping
  96.     if ((format.charAt(i_format) == '\\') && (i_format < format.length - 1))
  97.     {
  98.       result = result + format.charAt(++i_format);
  99.       i_format++;
  100.       continue;
  101.     }
  102.  
  103.     while ((format.charAt(i_format) == c) && (i_format < format.length))
  104.     {
  105.       token += format.charAt(i_format);
  106.       i_format++;
  107.     }
  108.     if (value[token] != null)
  109.     {
  110.       result = result + value[token];
  111.     }
  112.     else
  113.     {
  114.       result = result + token;
  115.     }
  116.   }
  117.   return result;
  118. }
  119.  
  120. function advanceclock()
  121. {
  122.   stopbanner();
  123.   clocktimer = setTimeout("advanceclock()", clockupdate);
  124.   clockrunning = true;
  125.   paintclock();
  126. }
  127.  
  128. function paintclock()
  129. {
  130.   // Display date and time
  131.   document.selection.empty();
  132.   document.deff.q.className = "clock";
  133.   var now = new Date();
  134.   document.deff.q.value = formatdate(now, clockformat);
  135.   if (typeof clocktooltipform != "undefined" && clocktooltipform != "")
  136.   {
  137.     document.deff.q.title = formatdate(now, clocktooltipform);
  138.   }
  139. }
  140.  
  141. function startclock(delay)
  142. {
  143.   if (clock && !clockrunning)
  144.   {
  145.     clocktimer = setTimeout("advanceclock()", delay);
  146.     clockrunning = true;
  147.   }
  148. }
  149.  
  150. function stopclock()
  151. {
  152.   if (clockrunning)
  153.     clearTimeout(clocktimer);
  154.   document.deff.q.title = "";
  155.   clockrunning = false;
  156. }
  157.  
  158.  
  159.